package com.gxa.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("登录注销权限管理")
                .apiInfo(apiInfo())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.user"))
                       .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 登录注销权限接口")
                .version("1.0.0")
                .contact(new Contact("项目八组", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api01() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("社区管理")
                .apiInfo(apiInfo01())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.community"))
                .build();
    }

    private ApiInfo apiInfo01() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 社区管理接口")
                .version("1.0.0")
                .contact(new Contact("yjl", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api02() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("停车管理")
                .apiInfo(apiInfo02())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.parking"))
                .build();
    }

    private ApiInfo apiInfo02() {
        return new ApiInfoBuilder()
                .title("智慧社区 项目接口文档")
                .description("智慧社区 停车管理接口")
                .version("1.0.0")
                .contact(new Contact("LH", "https://www.baidu.com", "15884527273@163.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api03() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("出入管理")
                .apiInfo(apiInfo03())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.discrepancy"))
                .build();
    }

    private ApiInfo apiInfo03() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 出入管理接口")
                .version("1.0.0")
                .contact(new Contact("YFM", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api04() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("资产管理")
                .apiInfo(apiInfo04())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.asset"))
                .build();
    }

    private ApiInfo apiInfo04() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 资产管理接口")
                .version("1.0.0")
                .contact(new Contact("YFM", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api05() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("社区生活")
                .apiInfo(apiInfo05())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.commlife"))
                .build();
    }

    private ApiInfo apiInfo05() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 社区生活接口")
                .version("1.0.0")
                .contact(new Contact("YQF", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api06() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("社区服务")
                .apiInfo(apiInfo06())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.commserve"))
                .build();
    }

    private ApiInfo apiInfo06() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 社区服务接口")
                .version("1.0.0")
                .contact(new Contact("YQF", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }
    @Bean
    public Docket api07() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("社区通知")
                .apiInfo(apiInfo07())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.commnotice"))
                .build();
    }

    private ApiInfo apiInfo07() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 社区通知接口")
                .version("1.0.0")
                .contact(new Contact("LST", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api08() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("招商管理")
                .apiInfo(apiInfo08())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.investment"))
                .build();
    }

    private ApiInfo apiInfo08() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 招商管理接口")
                .version("1.0.0")
                .contact(new Contact("LST", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api09() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("发票管理")
                .apiInfo(apiInfo09())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.receipt"))
                .build();
    }

    private ApiInfo apiInfo09() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 发票管理接口")
                .version("1.0.0")
                .contact(new Contact("LX", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

    @Bean
    public Docket api010() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("积分管理")
                .apiInfo(apiInfo10())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gxa.controller.points"))
                .build();
    }

    private ApiInfo apiInfo10() {
        return new ApiInfoBuilder()
                .title("智慧社区--接口文档")
                .description("智慧社区 积分管理接口")
                .version("1.0.0")
                .contact(new Contact("LX", "https://www.baidu.com", "1642342061@qq.com"))
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }

}